package erreAga.service.impl;

import java.util.List;

import erreAga.dao.AtestadoMedicoDao;
import erreAga.dao.DaoException;
import erreAga.dao.FuncionarioDao;
import erreAga.dao.HoraExtraDao;
import erreAga.dao.toplink.AtestadoMedicoDaoToplinkImpl;
import erreAga.dao.toplink.FuncionarioDaoToplinkImpl;
import erreAga.dao.toplink.HoraExtraDaoToplinkImpl;
import erreAga.eb.AtestadoMedico;
import erreAga.eb.Funcionario;
import erreAga.eb.HoraExtra;
import erreAga.service.ErreAgaService;


public class ErreAgaServiceImpl implements ErreAgaService {

  AtestadoMedicoDao atestadoMedicoDao;
  FuncionarioDao funcionarioDao;
  HoraExtraDao horaExtraDao;

  @Override
  public void deleteAtestadoMedico(AtestadoMedico atestadoMedico)
      throws DaoException {
    this.getAtestadoMedicoDao().deleteAtestadoMedico(atestadoMedico);
  }

  @Override
  public void deleteFuncionario(Funcionario funcionario) throws DaoException {
    this.getFuncionarioDao().deleteFuncionario(funcionario);
  }

  @Override
  public AtestadoMedico getAtestadoMedico(Integer id) throws DaoException {
    return this.getAtestadoMedicoDao().getAtestadoMedico(id);
  }

  @Override
  public Funcionario getFuncionario(Integer id) throws DaoException {
    return this.getFuncionarioDao().getFuncionario(id);
  }

  @Override
  public AtestadoMedico saveAtestadoMedico(AtestadoMedico atestadoMedico)
      throws DaoException {
    return this.getAtestadoMedicoDao().saveAtestadoMedico(atestadoMedico);
  }

  @Override
  public Funcionario saveFuncionario(Funcionario funcionario)
      throws DaoException {
    return this.getFuncionarioDao().saveFuncionario(funcionario);
  }

  @Override
  public List<AtestadoMedico> listAtestadoMedico() throws DaoException {
    return this.getAtestadoMedicoDao().searchAtestadoMedico();
  }

  @Override
  public List<Funcionario> listFuncionario() throws DaoException {
    return this.getFuncionarioDao().searchFuncionario();
  }

  @Override
  public Funcionario searchFuncionario(String matricula)
      throws DaoException {
    return this.getFuncionarioDao().searchFuncionario(matricula);
  }

  @Override
  public Funcionario searchFuncionarioByNome(String nome)
      throws DaoException {
    return this.getFuncionarioDao().searchFuncionarioByNome(nome);
  }


  public AtestadoMedicoDao getAtestadoMedicoDao() {
    if (this.atestadoMedicoDao == null) {
      this.atestadoMedicoDao = new AtestadoMedicoDaoToplinkImpl();
    }
    return atestadoMedicoDao;
  }


  public void setAtestadoMedicoDao(AtestadoMedicoDao atestadoMedicoDao) {
    this.atestadoMedicoDao = atestadoMedicoDao;
  }


  public FuncionarioDao getFuncionarioDao() {
    if (this.funcionarioDao == null) {
      this.funcionarioDao = new FuncionarioDaoToplinkImpl();
    }
    return funcionarioDao;
  }


  public void setFuncionarioDao(FuncionarioDao funcionarioDao) {
    this.funcionarioDao = funcionarioDao;
  }

  @Override
  public void deleteHoraExtra(HoraExtra horaExtra) throws DaoException {
    this.getHoraExtraDao().deleteHoraExtra(horaExtra);
  }

  @Override
  public HoraExtra getHoraExtra(Integer id) throws DaoException {
    return this.getHoraExtraDao().getHoraExtra(id);
  }

  @Override
  public List<HoraExtra> listHoraExtra() throws DaoException {
    return this.getHoraExtraDao().searchHoraExtra();
  }

  @Override
  public List<HoraExtra> listHoraExtra(String matriculaFuncionario) throws DaoException {
    return this.getHoraExtraDao().searchHoraExtra(matriculaFuncionario);
  }

  @Override
  public HoraExtra saveHoraExtra(HoraExtra horaExtra) throws DaoException {
    this.getHoraExtraDao().saveHoraExtra(horaExtra);
    return horaExtra;
  }


  public HoraExtraDao getHoraExtraDao() {
    if (this.horaExtraDao == null) {
      this.horaExtraDao = new HoraExtraDaoToplinkImpl();
    }
    return horaExtraDao;
  }


  public void setHoraExtraDao(HoraExtraDao horaExtraDao) {
    this.horaExtraDao = horaExtraDao;
  }

}
